Page({
  data: {
    msg: "hello world",
    students: [
      // { id: 1, name: "小明", age: 18, gender: "男" },
      // { id: 2, name: "小红", age: 17, gender: "女" },
      // { id: 3, name: "小刚", age: 19, gender: "男" },
      // { id: 4, name: "小丽", age: 18, gender: "女" },
      // { id: 5, name: "小米", age: 19, gender: "女" },
    ],
    cars: ["奥迪", "奔驰", "宝马", "劳斯莱斯"],
    seen: false,
    isLogin: true,
    userName: "",
  },
  // ----------------生命周期的钩子函数-begin------------------
  onLoad() {
    // console.log("onLoad-监听页面加载，只会执行 1 次");
    this.getStudentList();
  },
  onShow() {
    // console.log("onShow-监听页面显示，会执行 多 次");
  },
  onReady() {
    // console.log("onReady-监听页面初次渲染完成，只会执行 1 次");
  },
  onHide() {
    // console.log("onHide-监听页面隐藏，会执行 多 次");
  },
  onUnload() {
    // console.log("onUnload-监听页面卸载");
  },
  // ----------------生命周期的钩子函数-end------------------
  // ----------------自定义的方法-------------
  // 1. 切换展示
  toggle() {
    this.setData({
      seen: !this.data.seen,
    });
  },
  // 2. 获取学生列表
  getStudentList() {
    // 2.1 显示消息提示
    wx.showLoading({
      title: "正在加载数据...",
      mask: true,
    });

    // 2.2 发起请求
    wx.request({
      url: "https://mock.boxuegu.com/mock/3293/students",
      method: "GET",
      // 要使用箭头函数, 不然this拿不到
      success: (res) => {
        // console.log(res.data.result);
        // 更新数据
        this.setData({
          students: res.data.result,
        });
      },
      complete: () => {
        // 成功或失败都会进来
        // 2.3 关闭加载框
        wx.hideLoading();
      },
    });
  },
  // 3. 校验姓名
  // 规则: 汉字(2~5位)
  onSubmit() {
    console.log(this.data.userName);
    // 3.1 正则校验
    const reg = /^[\u4e00-\u9fa5]{2,5}$/;
    // 3.2 校验
    const valid = reg.test(this.data.userName.trim());
    // 3.3 结果判断
    if (!valid) {
      wx.showToast({
        title: "请输入2-5位汉字",
        mask: true,
        icon: "none",
      });
    } else {
      wx.showToast({
        title: "校验通过",
        mask: true,
        icon: "none",
      });
    }
  },
  // 4. 其它
  onOther() {
    // wx.showModal({
    //   title: "提示",
    //   content: "这是一个模态弹窗",
    //   success(res) {
    //     if (res.confirm) {
    //       console.log("用户点击确定");
    //     } else if (res.cancel) {
    //       console.log("用户点击取消");
    //     }
    //   },
    // });

    wx.showActionSheet({
      itemList: ["A", "B", "C"],
      success(res) {
        console.log(res.tapIndex);
      },
      fail(res) {
        console.log(res.errMsg);
      },
    });
  },
  // 5. 本地存储
  setStorage() {
    // --------------------
    // 同步存简单的数据
    // wx.setStorageSync("car", "劳斯莱斯");
    // 同步存复杂的数据
    // wx.setStorageSync("dog", {
    //   name: "旺财",
    //   age: 18,
    //   friends: ["煤球", "大黄"],
    // });
    // --------------------异步存
    wx.setStorage({
      key: "city",
      data: ["上海", "太原"],
    });
  },
  getStorage() {
    // const car = wx.getStorageSync("car");
    const dog = wx.getStorageSync("dog");
    console.log(dog.name);
  },
  removeStorage() {
    wx.removeStorageSync("car");
  },
  clearStorage() {
    wx.clearStorageSync();
  },
  // 6. 获取用户头像和昵称
  getUserAvatar(ev) {
    console.log(ev);
  },
  // 7. 跳转去日志页面
  toLogsPage() {
    wx.navigateTo({
      url: "/pages/logs/logs",
    });
    //   wx.redirectTo({
    //     url: 'url',
    //   })

    //  wx.reLaunch({
    //    url: 'url',
    //  })
    //  wx.switchTab({
    //    url: 'url',
    //  })
  },
});
